// utils/tabBar.js

/**
 * 获取底部导航栏高度
 * @returns {Promise<number>} 导航栏高度（rpx）
 */
export function getTabBarHeight() {
  return new Promise((resolve) => {
    try {
      // 优先使用新的API
      const deviceInfo = wx.getDeviceInfo();
      const windowInfo = wx.getWindowInfo();
      
      // 基础导航栏高度（rpx）
      const baseHeight = 100; // 100rpx
      
      // 安全区域高度（px转rpx）
      const safeAreaBottom = (windowInfo.safeAreaInsets?.bottom || 0) * 2; // px转rpx
      
      // 总高度
      const totalHeight = baseHeight + safeAreaBottom;
      
      resolve(totalHeight);
    } catch (error) {
      // 降级到旧API
      const systemInfo = wx.getSystemInfoSync();
      
      // 基础导航栏高度（rpx）
      const baseHeight = 100; // 100rpx
      
      // 安全区域高度（px转rpx）
      const safeAreaBottom = (systemInfo.safeAreaInsets?.bottom || 0) * 2; // px转rpx
      
      // 总高度
      const totalHeight = baseHeight + safeAreaBottom;
      
      resolve(totalHeight);
    }
  });
}

/**
 * 设置页面底部间距
 * @param {Object} pageInstance 页面实例
 * @param {string} className 样式类名，默认为 'page-container'
 */
export function setPageBottomPadding(pageInstance, className = 'page-container') {
  getTabBarHeight().then(height => {
    const style = `padding-bottom: ${height}rpx;`;
    
    // 动态设置样式
    if (pageInstance.setData) {
      pageInstance.setData({
        [`${className}Style`]: style
      });
    }
  });
}

/**
 * 创建页面底部间距样式
 * @returns {Promise<string>} CSS样式字符串
 */
export function createBottomPaddingStyle() {
  return getTabBarHeight().then(height => {
    return `padding-bottom: ${height}rpx;`;
  });
}
